#ifndef ____CONFIG_H_____
#define ____CONFIG_H_____


#include <utility>
#include <vector>
#include <limits>
#include <list>
#include <assert.h>
#include <ostream>
#include <algorithm>
//#include <math.h>

// disable: "truncation from 'double' to 'float'
#pragma warning (disable : 4305)
// disable: "conversion from 'double' to 'MyCommon::Real', possible loss of data"
#pragma warning (disable : 4244)


#ifndef MYCOMMON_DOUBLE_PRECISION
#define MYCOMMON_DOUBLE_PRECISION 0
#endif
namespace MyCommon
{


#if MYCOMMON_DOUBLE_PRECISION == 1
	typedef double Real;
#else
	typedef float Real;
#endif

	///** In order to avoid finger-aches :)
	//*/
	//typedef unsigned char uchar;
	//typedef unsigned short ushort;
	//typedef unsigned int uint;
	//typedef unsigned long ulong;


	class Math;
	class Degree;
	class Radian;
	class Vector2;
	class Vector3;
	class Vector4;
	class Matrix3;
	class Matrix4;
	class Quaternion;
	class Plane;
	class Ray;
	class Timer;
	class PrecisionTimer;
	class Sphere;
	class PlaneBoundedVolume;
	class AxisAlignedBox;
	class IniFileLoaderBase;
}


#endif